文章目录
  1. 1. NSError 自定义

NSError 自定义

定制NSError

\

\

\

效果:

\

\

\

系统的NSError是可以自己定制的,以下提供代码来实现并表示如何使用:

\

YXError.h 与 YXError.m

\

\

//

//  YXError.h

//  CustomYXError

//

//  Copyright (c) 2014年 Y.X. All rights reserved.

//

\

#import <Foundation/Foundation.h>

\

// 自行添加错误码

typedef enum : NSUInteger {

    Crash        = -10000,

    DisConnect,

    Unknow,

} YXErrorCode;

\

interface YXError : NSObject

\

  • (NSError *)errorCode:(YXErrorCode)code userInfo:(NSDictionary *)dic;
  • (NSString *)transformCodeToStringInfo:(YXErrorCode)code;

\

end

\

\

//

//  YXError.m

//  CustomYXError

//

//  Copyright (c) 2014年 Y.X. All rights reserved.

//

\

#import “YXError.h”

\

static NSDictionary *errorDictionary = nil;

\

implementation YXError

\

  • (void)initialize

{

    if (self == [YXError class])

    {

        errorDictionary = \

        {

          /* code        :        errorWithDomain */

          /* ==================================== */

         

          (Crash)       :        “Crash”,

          (DisConnect)  :        “DisConnect”,

          (Unknow)      :        “Unknow”,

         

          /* ==================================== */

          };

    }

}

\

  • (NSError *)errorCode:(YXErrorCode)code userInfo:(NSDictionary *)dic

{

    return [NSError errorWithDomain:errorDictionary[ (code)]

                               code:code

                           userInfo:dic];

}

\

  • (NSString *)transformCodeToStringInfo:(YXErrorCode)code

{

    return errorDictionary[ (code)];

}

\

end

\

以下是使用的代码:

\

\

//

//  AppDelegate.m

//  NSError

//

//  Copyright (c) 2014年 YouXianMing. All rights reserved.

//

\

#import “AppDelegate.h”

#import “YXError.h”

\

implementation AppDelegate

\

  • (BOOL)application:(UIApplication *)application
    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    // 定制一个NSError

    NSError *error = [YXError errorCode:Crash

                               userInfo:nil];

    NSLog( “% “, error);

   

    // 翻译一个NSError(将code值翻译成字符串)

    NSLog( “% “, [YXError transformCodeToStringInfo:-10000]);

   

    return YES;

}

\

end

\

以下是自行添加错误代码的地方:

\

\

\

以下是设计的细节(其中,将字典,枚举值,字符串3者之间建立联系的做法还是很有意思的):

\

\

\

 

文章目录
  1. 1. NSError 自定义